package chapter8;

import java.util.HashMap;
import java.util.Map;

/**
 * Java8中Map新增的一些方法
 */
public class MapTest2 {
    public static void main(String[] args) {
        Map map = new HashMap();
        map.put("java", 109);
        map.put("ios", 99);
        map.put("python", 79);
        //尝试替换key为go的value值，原map中没有该值，不会新增key/value
        map.replace("go", 66);
        System.out.println(map);
        //使用原value与传入参数计算出来的结果覆盖原有的value
        map.merge("ios", 10, (oldValue, param)-> (Integer)oldValue + (Integer) param);
        System.out.println(map);
        //当key为nodejs对应的value为null或者不存在时，使用计算结果作为新的value
        map.computeIfAbsent("nodejs", (key)->((String)key).length());
        System.out.println(map);
        //当key为nodejs的value存在时，使用计算的结果作为新的value
        map.computeIfPresent("nodejs", (key, value)->(Integer) value * (Integer) value);
        System.out.println(map);
    }
}
